#include <iostream>
using namespace std;

/*
    1.以前通过自定义公有方法去设置猫的属性信息
      现在更换新的思路--》构造函数来初始化猫的信息
    2.构造函数的语法规则
      类名(形参)
      {
          // 构造函数体
      }
      注意：
      1）构造函数没有返回类型
      2）形参类型个数没有限制
      3)不可以主动调用
    3.构造函数如何使用？
      答案：只要你新建一个对象，对应的构造函数就自动调用一次
      只要你新建100个对象，对应的构造函数就自动调用100次
      构造函数不能主动调用，构造函数是在创建对象的时候，系统自动帮你调用的
*/

class Cat
{

public:
    // 构造函数
    Cat(string name, int age = 0)
    {
        this->name = name;
        this->age = age;
        cout << "Cat类的构造函数被调用了" << endl;
    }

    void show()
    {
        cout << "猫的信息是 name: " << name << " age: " << age << endl;
    }

private:
    string name;
    int age;
};

int main()
{
    Cat cat1("小花", 3);
    Cat cat2("小黑", 4);
    Cat cat3("小白", 5);
    Cat cat4("小黄");

    Cat *cat5 = new Cat("小蓝", 6);

    cat1.show();
    cat2.show();
    cat3.show();
    cat4.show();
    cat5->show();

    delete cat5;
    return 0;
}